// import { globalIgnores } from 'eslint/config'
// import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'
// import pluginVue from 'eslint-plugin-vue'
// import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
// import eslintConfigPrettier from 'eslint-config-prettier'
// export default defineConfigWithVueTs(
// 	{
// 		name: 'app/files-to-lint',
// 		files: ['**/*.{ts,mts,tsx,vue}'],
// 	},
// 	globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),
// 	pluginVue.configs['flat/essential'],
// 	// 添加recommended配置，它包含了multi-word-component-names规则
// 	pluginVue.configs['flat/recommended'],
// 	vueTsConfigs.recommended,
// 	eslintConfigPrettier,
// 	// 配置multi-word-component-names规则
// 	{
// 		name: 'app/vue-component-names',
// 		rules: {
// 			'vue/multi-word-component-names': [
// 				'error',
// 				{
// 					// 允许单单词组件名（如page.vue）
// 					// 对于多单词组件名，规则默认要求使用kebab-case或PascalCase
// 					// 这里我们不添加任何例外，确保所有组件名都符合要求
// 					ignores: ['App'], // 通常App是根组件，可以例外
// 				},
// 			],
// 		},
// 	},
// 	skipFormatting,
// )
import { defineConfig, globalIgnores } from 'eslint/config'
import globals from 'globals'
import eslint from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import vueParser from 'vue-eslint-parser'
import tseslint from 'typescript-eslint'
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
// 检测环境变量
const isProduction = process.env.NODE_ENV === 'production'

// 根据环境设置规则级别
const unusedVarsRuleLevel = isProduction ? 'error' : 'warn'

export default defineConfig([
	globalIgnores([
		//全局忽略
		'dist',
		'node_modules',
		'.gitignore',
		'package.json',
		'package-lock.json',
		'*.local',
		'*.d.ts',
		'src/assets/**',
		'.husky/**',
	]),
	//js推荐配置
	eslint.configs.recommended,
	//vue推荐配置
	...pluginVue.configs['flat/essential'],
	//prettier配置
	eslintPluginPrettierRecommended,
	//typescript-eslint推荐配置
	...tseslint.configs.recommended,
	//js规则
	{
		files: ['**/*.{js,jsx,mjs,cjs,ts,tsx,vue}'],
		// ignores: ['.husky/**'],

		rules: {
			// 'no-undef': 'error',
			'no-unused-vars': 'off', // 禁用JS的未使用变量规则，使用TS的规则
			'no-console': 'error',
			'@typescript-eslint/no-unused-vars': unusedVarsRuleLevel,
		},
	},
	//覆写部分vue规则
	{
		files: ['**/*.vue'],
		languageOptions: {
			parser: vueParser,
			globals: { ...globals.browser, ...globals.node },
			parserOptions: {
				//typescript支持
				parser: tseslint.parser,
				ecmaVersion: 'latest',
				ecmaFeatures: {
					//允许使用jsx
					jsx: true,
				},
			},
		},
		//https://eslint.vuejs.org/rules/comment-directive.html
		rules: {
			'vue/no-v-html': 'warn',
			'vue/multi-word-component-names': 'off',
		},
	},
])
